export interface User {
  userId: number;
  username: string;
  email: string;
  nickname: string;
  gender?: 'MALE' | 'FEMALE' | 'UNKNOWN';
  avatar?: string | null;
  role?: 'USER' | 'ADMIN';
  status?: number;
}

export interface LoginForm {
  username: string;
  password: string;
}

export interface RegisterForm {
  username: string;
  password: string;
  email: string;
  verificationCode: string;
  nickname: string;
}

export interface PasswordUpdateForm {
  oldPassword: string;
  newPassword: string;
  confirmPassword: string;
}

export interface UserUpdateForm {
  userId: number;
  nickname?: string;
  gender?: string;
  email?: string;
}

export interface ApiResponse<T = unknown> {
  code: number;
  data?: T;
  message?: string;
}
